package main.java.ERMDE.controllers;

import java.util.List;

import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;

import main.java.ERMDE.models.ProjectType;
import main.java.ERMDE.views.IProjectView;


public interface IProjectController {
	void createProjectERM(String string);

	void createProjectFSM(String string);
	
	void createProjectDM(String string);

	boolean openProject(String string) throws Exception;

	IDiagramController getCurrentErmDiagramController();

	main.java.FSMDE.controllers.IDiagramController getCurrentFsmDiagramController();

	main.java.FSMDE.infrastructure.IProjectContext getFsmContext();

	IProjectView getView();

	TreeModel getProjectTree();

	void changeElement(TreePath treePath);

	void deleteElement(TreePath path);

	void validateERMProject(String name, int toleranceLevel);

	void validateFSMProject(String name);

	List<String> getExistingProjects(String type);

	void changeToSubdiagram(String subdiagramName);

	ProjectType getProjectType();

	boolean treeNodeIsDiagram(TreePath treePath);

	void updateDiagramName(TreePath path, String editedName);

	void convertToDM(String name);

	void convertToFMS(String name);
}
